package com.foreverwin.mes.meapi.model;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.activerecord.Model;

import java.util.Date;

import com.baomidou.mybatisplus.annotations.TableField;

import java.io.Serializable;

import com.baomidou.mybatisplus.enums.IdType;

/**
 * <p>
 *
 * </p>
 *
 * @author Ervin Chen
 * @since 2020-02-07
 */
@TableName("BOM_COMPONENT")
public class BomComponent extends Model<BomComponent> {

    private static final long serialVersionUID = 1L;

    @TableId("HANDLE")
    private String handle;
    @TableField("BOM_BO")
    private String bomBo;
    @TableField("COMPONENT_GBO")
    private String componentGbo;
    @TableField("SEQUENCE")
    private Long sequence;
    @TableField("ENABLED")
    private String enabled;
    @TableField("VALID_START")
    private Date validStart;
    @TableField("VALID_END")
    private Date validEnd;
    @TableField("USE_ITEM_DEFAULTS")
    private String useItemDefaults;
    @TableField("PRE_ASSEMBLED")
    private String preAssembled;
    @TableField("ASSY_DATA_TYPE_BO")
    private String assyDataTypeBo;
    @TableField("QTY")
    private Double qty;
    @TableField("TEST_PART")
    private String testPart;
    @TableField("BOM_TEMPLATE")
    private String bomTemplate;
    @TableField("DISASSEMBLE_OPERATION_BO")
    private String disassembleOperationBo;
    @TableField("CREATE_TRACKABLE_SFC")
    private String createTrackableSfc;
    @TableField("MAXIMUM_USAGE")
    private Long maximumUsage;
    @TableField("MAXIMUM_NC")
    private Long maximumNc;
    @TableField("ASSEMBLE_AS_REQ")
    private String assembleAsReq;
    @TableField("AUTO_CONSUME_KIT")
    private String autoConsumeKit;
    @TableField("CREATED_DATE_TIME")
    private Date createdDateTime;
    @TableField("MODIFIED_DATE_TIME")
    private Date modifiedDateTime;
    @TableField("BOM_COMPONENT_TYPE")
    private String bomComponentType;
    @TableField("PARENT_SEQUENCE")
    private Long parentSequence;
    @TableField("ERP_SEQUENCE")
    private Long erpSequence;
    @TableField("ORDER_ITEM_NUMBER")
    private String orderItemNumber;
    @TableField("ERP_CHANGE_NUMBER")
    private String erpChangeNumber;

    @TableField(exist = false)
    private String itemSize;

    @TableField(exist = false)
    private String itemDescription;

    @TableField(exist = false)
    private String operationBo;

    @TableField(exist = false)
    private String materialType;

    public String getHandle() {
        return handle;
    }

    public void setHandle(String handle) {
        this.handle = handle;
    }

    public String getBomBo() {
        return bomBo;
    }

    public void setBomBo(String bomBo) {
        this.bomBo = bomBo;
    }

    public String getComponentGbo() {
        return componentGbo;
    }

    public void setComponentGbo(String componentGbo) {
        this.componentGbo = componentGbo;
    }

    public Long getSequence() {
        return sequence;
    }

    public void setSequence(Long sequence) {
        this.sequence = sequence;
    }

    public String getEnabled() {
        return enabled;
    }

    public void setEnabled(String enabled) {
        this.enabled = enabled;
    }

    public Date getValidStart() {
        return validStart;
    }

    public void setValidStart(Date validStart) {
        this.validStart = validStart;
    }

    public Date getValidEnd() {
        return validEnd;
    }

    public void setValidEnd(Date validEnd) {
        this.validEnd = validEnd;
    }

    public String getUseItemDefaults() {
        return useItemDefaults;
    }

    public void setUseItemDefaults(String useItemDefaults) {
        this.useItemDefaults = useItemDefaults;
    }

    public String getPreAssembled() {
        return preAssembled;
    }

    public void setPreAssembled(String preAssembled) {
        this.preAssembled = preAssembled;
    }

    public String getAssyDataTypeBo() {
        return assyDataTypeBo;
    }

    public void setAssyDataTypeBo(String assyDataTypeBo) {
        this.assyDataTypeBo = assyDataTypeBo;
    }

    public Double getQty() {
        return qty;
    }

    public void setQty(Double qty) {
        this.qty = qty;
    }

    public String getTestPart() {
        return testPart;
    }

    public void setTestPart(String testPart) {
        this.testPart = testPart;
    }

    public String getBomTemplate() {
        return bomTemplate;
    }

    public void setBomTemplate(String bomTemplate) {
        this.bomTemplate = bomTemplate;
    }

    public String getDisassembleOperationBo() {
        return disassembleOperationBo;
    }

    public void setDisassembleOperationBo(String disassembleOperationBo) {
        this.disassembleOperationBo = disassembleOperationBo;
    }

    public String getCreateTrackableSfc() {
        return createTrackableSfc;
    }

    public void setCreateTrackableSfc(String createTrackableSfc) {
        this.createTrackableSfc = createTrackableSfc;
    }

    public Long getMaximumUsage() {
        return maximumUsage;
    }

    public void setMaximumUsage(Long maximumUsage) {
        this.maximumUsage = maximumUsage;
    }

    public Long getMaximumNc() {
        return maximumNc;
    }

    public void setMaximumNc(Long maximumNc) {
        this.maximumNc = maximumNc;
    }

    public String getAssembleAsReq() {
        return assembleAsReq;
    }

    public void setAssembleAsReq(String assembleAsReq) {
        this.assembleAsReq = assembleAsReq;
    }

    public String getAutoConsumeKit() {
        return autoConsumeKit;
    }

    public void setAutoConsumeKit(String autoConsumeKit) {
        this.autoConsumeKit = autoConsumeKit;
    }

    public Date getCreatedDateTime() {
        return createdDateTime;
    }

    public void setCreatedDateTime(Date createdDateTime) {
        this.createdDateTime = createdDateTime;
    }

    public Date getModifiedDateTime() {
        return modifiedDateTime;
    }

    public void setModifiedDateTime(Date modifiedDateTime) {
        this.modifiedDateTime = modifiedDateTime;
    }

    public String getBomComponentType() {
        return bomComponentType;
    }

    public void setBomComponentType(String bomComponentType) {
        this.bomComponentType = bomComponentType;
    }

    public Long getParentSequence() {
        return parentSequence;
    }

    public void setParentSequence(Long parentSequence) {
        this.parentSequence = parentSequence;
    }

    public Long getErpSequence() {
        return erpSequence;
    }

    public void setErpSequence(Long erpSequence) {
        this.erpSequence = erpSequence;
    }

    public String getOrderItemNumber() {
        return orderItemNumber;
    }

    public void setOrderItemNumber(String orderItemNumber) {
        this.orderItemNumber = orderItemNumber;
    }

    public String getErpChangeNumber() {
        return erpChangeNumber;
    }

    public void setErpChangeNumber(String erpChangeNumber) {
        this.erpChangeNumber = erpChangeNumber;
    }

    public String getItemSize() {
        return itemSize;
    }

    public void setItemSize(String itemSize) {
        this.itemSize = itemSize;
    }

    public String getItemDescription() {
        return itemDescription;
    }

    public void setItemDescription(String itemDescription) {
        this.itemDescription = itemDescription;
    }

    public String getOperationBo() {
        return operationBo;
    }

    public void setOperationBo(String operationBo) {
        this.operationBo = operationBo;
    }

    public String getMaterialType() {
        return materialType;
    }

    public void setMaterialType(String materialType) {
        this.materialType = materialType;
    }

    public static final String HANDLE = "HANDLE";

    public static final String BOM_BO = "BOM_BO";

    public static final String COMPONENT_GBO = "COMPONENT_GBO";

    public static final String SEQUENCE = "SEQUENCE";

    public static final String ENABLED = "ENABLED";

    public static final String VALID_START = "VALID_START";

    public static final String VALID_END = "VALID_END";

    public static final String USE_ITEM_DEFAULTS = "USE_ITEM_DEFAULTS";

    public static final String PRE_ASSEMBLED = "PRE_ASSEMBLED";

    public static final String ASSY_DATA_TYPE_BO = "ASSY_DATA_TYPE_BO";

    public static final String QTY = "QTY";

    public static final String TEST_PART = "TEST_PART";

    public static final String BOM_TEMPLATE = "BOM_TEMPLATE";

    public static final String DISASSEMBLE_OPERATION_BO = "DISASSEMBLE_OPERATION_BO";

    public static final String CREATE_TRACKABLE_SFC = "CREATE_TRACKABLE_SFC";

    public static final String MAXIMUM_USAGE = "MAXIMUM_USAGE";

    public static final String MAXIMUM_NC = "MAXIMUM_NC";

    public static final String ASSEMBLE_AS_REQ = "ASSEMBLE_AS_REQ";

    public static final String AUTO_CONSUME_KIT = "AUTO_CONSUME_KIT";

    public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME";

    public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME";

    public static final String BOM_COMPONENT_TYPE = "BOM_COMPONENT_TYPE";

    public static final String PARENT_SEQUENCE = "PARENT_SEQUENCE";

    public static final String ERP_SEQUENCE = "ERP_SEQUENCE";

    public static final String ORDER_ITEM_NUMBER = "ORDER_ITEM_NUMBER";

    public static final String ERP_CHANGE_NUMBER = "ERP_CHANGE_NUMBER";

    @Override
    protected Serializable pkVal() {
        return this.handle;
    }

    @Override
    public String toString() {
        return "BomComponent{" +
                "handle = " + handle +
                ", bomBo = " + bomBo +
                ", componentGbo = " + componentGbo +
                ", sequence = " + sequence +
                ", enabled = " + enabled +
                ", validStart = " + validStart +
                ", validEnd = " + validEnd +
                ", useItemDefaults = " + useItemDefaults +
                ", preAssembled = " + preAssembled +
                ", assyDataTypeBo = " + assyDataTypeBo +
                ", qty = " + qty +
                ", testPart = " + testPart +
                ", bomTemplate = " + bomTemplate +
                ", disassembleOperationBo = " + disassembleOperationBo +
                ", createTrackableSfc = " + createTrackableSfc +
                ", maximumUsage = " + maximumUsage +
                ", maximumNc = " + maximumNc +
                ", assembleAsReq = " + assembleAsReq +
                ", autoConsumeKit = " + autoConsumeKit +
                ", createdDateTime = " + createdDateTime +
                ", modifiedDateTime = " + modifiedDateTime +
                ", bomComponentType = " + bomComponentType +
                ", parentSequence = " + parentSequence +
                ", erpSequence = " + erpSequence +
                ", orderItemNumber = " + orderItemNumber +
                ", erpChangeNumber = " + erpChangeNumber +
                "}";
    }
}